package com.tencent.sr.iris.activity.service.task;

import com.tencent.sr.iris.activity.interfaces.request.group.AdvisorGroupTaskRequest;
import com.tencent.sr.iris.activity.interfaces.request.operate.OperateBoardRequest;
import com.tencent.sr.iris.activity.interfaces.request.operate.OperateBoardStatisticsRequest;
import com.tencent.sr.iris.activity.interfaces.request.operate.OperateBoardThirdRequest;
import com.tencent.sr.iris.activity.interfaces.request.operate.SpecialStageListsRequest;
import com.tencent.sr.iris.activity.interfaces.request.operate.UnJoinTaskRequest;
import com.tencent.sr.iris.activity.interfaces.response.group.AdvisorBoardResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.GroupTaskPaginationResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.OperateBoardCommissionResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.OperateBoardFirstOrderResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.OperateBoardInviteResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.OperateBoardSprintResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.OperateBoardStatisticsResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.OperateSecondBoardResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.OperateThirdBoardResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.SpecialStageListsResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.UnJoinTaskResponse;
import com.tencent.sr.rmall.common.request.PaginationRequest;
import com.tencent.sr.rmall.common.response.PaginationResponse;

import java.util.List;

public interface OperateBoardService {

    /**
     * 运营平台-邀新有礼
     *
     * @param request
     * @return
     */
    PaginationResponse<OperateBoardInviteResponse> queryOperateBoardInvite(
            PaginationRequest<OperateBoardRequest> request);

    /**
     * 运营平台-冲刺赛
     *
     * @param request
     * @return
     */
    PaginationResponse<OperateBoardSprintResponse> queryOperateBoardSprint(
            PaginationRequest<OperateBoardRequest> request);

    /**
     * 运营平台-佣金回滚
     *
     * @param request
     * @return
     */
    PaginationResponse<OperateBoardCommissionResponse> queryOperateBoardCommission(
            PaginationRequest<OperateBoardRequest> request);

    /**
     * 运营平台 - 粉丝首单
     *
     * @param request
     * @return
     */
    PaginationResponse<OperateBoardFirstOrderResponse> queryOperateFirstOrder(
            PaginationRequest<OperateBoardRequest> request);

    /**
     * 营销端查询团长任务一级页面
     *
     * @param request
     * @return
     */
    PaginationResponse<AdvisorBoardResponse> queryOperateBoard(PaginationRequest<AdvisorGroupTaskRequest> request);

    /**
     * 营销端查询团长任务二级页面
     *
     * @param request
     * @return
     */
    GroupTaskPaginationResponse<OperateSecondBoardResponse> queryOperateSecondBoard(
            PaginationRequest<OperateBoardRequest> request);

    /**
     * 营销端查询团长任务三级页面
     *
     * @param request
     * @return
     */
    PaginationResponse<OperateThirdBoardResponse> queryOperateThirdBoard(
            PaginationRequest<OperateBoardThirdRequest> request);

    /**
     * 查询为报名团长数
     *
     * @param request
     * @return
     */
    PaginationResponse<UnJoinTaskResponse> listUnJoinTaskLeader(PaginationRequest<UnJoinTaskRequest> request);

    /**
     * 运营一级统计
     *
     * @param request
     * @return
     */
    OperateBoardStatisticsResponse operateBoardStatistics(OperateBoardStatisticsRequest request);

    /**
     * 查询特邀阶段
     *
     * @param request
     * @return
     */
    List<SpecialStageListsResponse> taskGroupSpecialStageLists(SpecialStageListsRequest request);
}
